#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
智慧童话世界 - 基础功能测试
"""

import sys
import os
from pathlib import Path

def test_imports():
    """测试模块导入"""
    print("🔍 测试模块导入...")
    
    try:
        # 测试基础模块
        import json
        import asyncio
        print("✅ 基础模块导入成功")
        
        # 测试自定义模块
        from ai_fairy_tale_book import AIFairyTaleBook
        print("✅ AI童话书模块导入成功")
        
        from mcp_integration import MCPIntegration
        print("✅ MCP集成模块导入成功")
        
        from zhiyuan_integration import ZhiyuanIntegration
        print("✅ 智源集成模块导入成功")
        
        return True
        
    except ImportError as e:
        print(f"❌ 模块导入失败: {e}")
        return False

def test_basic_functionality():
    """测试基础功能"""
    print("\n🧪 测试基础功能...")
    
    try:
        # 创建AI童话书实例
        fairy_tale = AIFairyTaleBook()
        print("✅ AI童话书实例创建成功")
        
        # 测试配置加载
        from fairy_tale_config import MODEL_CONFIG, STORY_CONFIG
        print(f"✅ 配置加载成功 - 模型路径: {MODEL_CONFIG['model_path']}")
        
        # 测试故事模板
        from story_templates import STORY_TEMPLATES
        print(f"✅ 故事模板加载成功 - 共{len(STORY_TEMPLATES)}个模板")
        
        return True
        
    except Exception as e:
        print(f"❌ 基础功能测试失败: {e}")
        return False

def test_file_structure():
    """测试文件结构"""
    print("\n📁 检查文件结构...")
    
    required_files = [
        'ai_fairy_tale_book.py',
        'web_interface.py', 
        'mcp_integration.py',
        'zhiyuan_integration.py',
        'fairy_tale_config.py',
        'story_templates.py',
        'requirements.txt',
        'main.py'
    ]
    
    missing_files = []
    
    for file_name in required_files:
        if Path(file_name).exists():
            print(f"✅ {file_name}")
        else:
            print(f"❌ {file_name} - 缺失")
            missing_files.append(file_name)
    
    # 检查目录
    required_dirs = ['templates', 'static']
    for dir_name in required_dirs:
        if Path(dir_name).exists():
            print(f"✅ {dir_name}/")
        else:
            print(f"❌ {dir_name}/ - 缺失")
    
    return len(missing_files) == 0

def print_system_info():
    """打印系统信息"""
    print(f"\n📊 系统信息:")
    print(f"Python版本: {sys.version}")
    print(f"工作目录: {os.getcwd()}")
    print(f"Python路径: {sys.path[0]}")

def main():
    """主测试函数"""
    print("🚀 智慧童话世界 - 基础功能测试")
    print("=" * 50)
    
    # 打印系统信息
    print_system_info()
    
    # 测试文件结构
    if not test_file_structure():
        print("\n❌ 文件结构检查失败，请确保所有必要文件存在")
        return
    
    # 测试模块导入
    if not test_imports():
        print("\n❌ 模块导入测试失败")
        return
    
    # 测试基础功能
    if not test_basic_functionality():
        print("\n❌ 基础功能测试失败")
        return
    
    print("\n🎉 所有基础测试通过！")
    print("💡 现在可以运行完整应用: python main.py")

if __name__ == "__main__":
    main()